package tests;

import common.Utils;
import org.openqa.selenium.By;

import java.io.IOException;

public class LoginPage extends Utils {
    public static String url = "http://124.223.114.169:8080/blog_login.html";
//    public LoginPage(String url) {
//        super(url);
//    }
//就觉的这里↑↑↑不对
public LoginPage() {
    super(url);
}



    /**
     * 检查页面是否加载成功   ---这都是根据测试用例来的
     * 技巧：查找是否存在成功加载才存在的一些必要元素
     */
    public void loginRight() {
        //通过查看页面元素是否存在来检查页面加载成功与否
        driver.findElement(By.cssSelector("body > div.container-login > div"));

        //登录输入框
        //driver.findElement(By.id("@$$$"));？？？怎么通过ID查找啊？？？
        driver.findElement(By.cssSelector("body > div.container-login > div"));
    }

    /**
     * 检查登录功能   ---成功登录
     * 技巧：
     *      登录成功会发生页面跳转。检查页面标题/URL、其他元素是否存在
     */
    public void loginSuc() {

        //降低用例测试之间的顺序依赖性
        //      将内容清空，方式发生拼接，导致错误
        driver.findElement(By.cssSelector("#username")).clear();
        driver.findElement(By.cssSelector("#password")).clear();

        //输入正确登录的用例
        /*driver.findElement(By.id("#username")).sendKeys("zhangsan");
        driver.findElement(By.id("#password")).sendKeys("123456");
        driver.findElement(By.id("#login")).click();//不要忘记点击登录*/

        driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        driver.findElement(By.cssSelector("#submit")).click();//不要忘记点击登录

        //通过页面元素，判断是否登录成功（这里检查的是成功登录后的左边登录用户的信息相关的元素）
        driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > a"));
        //通过标题，判断是否登录成功
        String expect = driver.getTitle();
        assert expect.equals("博客列表");//程序员写的时候一定是事先知道正确发生跳转后的页面的标题是啥的
    }

    /**
     * 检查登录功能   ---登录失败
     */
    public void loginFail() throws IOException {
        //方法一：通过clear保证输入框没有文本
        driver.findElement(By.id("#username")).clear();
        driver.findElement(By.id("#password")).clear();
        //方法二：通过刷新保证输入框没有文本
        driver.navigate().refresh();

        //输入不能正确登录的用例
        driver.findElement(By.id("#username")).sendKeys("zhangsan123");
        driver.findElement(By.id("#password")).sendKeys("123456");
        driver.findElement(By.id("#login")).click();//不要忘记点击登录

        //登录失败，也会跳转到一个页面，查找这个页面的元素/信息，进行判断
        String res = driver.findElement(By.cssSelector("body")).getText();

        //截图看一下
        getScreenShot(getClass().getName());

        assert res.equals("用户名或密码错误！");
    }




    /**
     *
     */

















}
